<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Annuaire genealogique associatif: Référence de la classe tp3::Annuaire</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Généré par Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Annuaire genealogique associatif&#160;<span id="projectnumber">1.0</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Page&#160;principale</span></a></li>
      <li><a href="namespaces.html"><span>Espaces&#160;de&#160;nommage</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Fichiers</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Liste&#160;des&#160;classes</span></a></li>
      <li><a href="functions.html"><span>Membres&#160;de&#160;classe</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('classtp3_1_1_annuaire.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Fonctions membres publiques</a> &#124;
<a href="#pri-attribs">Attributs privés</a> &#124;
<a href="#friends">Amis</a>  </div>
  <div class="headertitle">
<div class="title">Référence de la classe tp3::Annuaire</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="tp3::Annuaire" -->
<p><code>#include &lt;Annuaire.h&gt;</code></p>
<div class="dynheader">
Graphe de collaboration de tp3::Annuaire:</div>
<div class="dyncontent">
<div class="center"><img src="classtp3_1_1_annuaire__coll__graph.png" border="0" usemap="#tp3_1_1_annuaire_coll__map" alt="Collaboration graph"/></div>
<map name="tp3_1_1_annuaire_coll__map" id="tp3_1_1_annuaire_coll__map">
<area shape="rect" id="node2" href="classlab3_1_1_liste.html" title="lab3::Liste\&lt; ArbreGenealogique \&gt;" alt="" coords="19,99,236,125"/><area shape="rect" id="node4" href="classlab3_1_1_liste_1_1_noeud.html" title="classe interne représentant un noeud typique" alt="" coords="5,7,168,33"/><area shape="rect" id="node7" href="classtp3_1_1_arbre_a_v_l.html" title="tp3::ArbreAVL\&lt; Personne, Adresse \&gt;" alt="" coords="277,99,515,125"/><area shape="rect" id="node9" href="classtp3_1_1_arbre_a_v_l_1_1_noeud.html" title="classe interne représentant un noeud typique de l&#39;arbre associatif La classe représente un noeud typi..." alt="" coords="258,7,552,33"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">légende</a>]</span></center></div>

<p><a href="classtp3_1_1_annuaire-members.html">Liste de tous les membres</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Fonctions membres publiques</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_annuaire.html#aeb92ecec40ffca21b6933b384386d119">Annuaire</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_annuaire.html#ab8c17cbbc1ac312cb7a294e2810402ea">Annuaire</a> (std::ifstream &amp;p_fichierEntree)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructeur à partir d'un fichier en entrée.  <a href="#ab8c17cbbc1ac312cb7a294e2810402ea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_annuaire.html#a396bb269100505301c66ea5c29740d46">~Annuaire</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_annuaire.html#acfbfa0240b09dfcb8f6e3e3a7e9d1d7a">inscrire</a> (const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;p_personne, const <a class="el" href="classtp3_1_1_adresse.html">Adresse</a> &amp;p_adresse)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">pour inscrire une personne dans l'annuaire  <a href="#acfbfa0240b09dfcb8f6e3e3a7e9d1d7a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_annuaire.html#af2e2e1eddc5bd80a48bfcab51b0b55d3">ajouterEnfant</a> (const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;p_parent, const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;p_enfant)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">ajoute un enfant à un parent dans un arbre généalogique.  <a href="#af2e2e1eddc5bd80a48bfcab51b0b55d3"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Attributs privés</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtp3_1_1_arbre_a_v_l.html">ArbreAVL</a>&lt; <a class="el" href="classtp3_1_1_personne.html">Personne</a>, <a class="el" href="classtp3_1_1_adresse.html">Adresse</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_annuaire.html#a30d1f7375cc83f712cab39d2833e20e0">m_bottin</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlab3_1_1_liste.html">lab3::Liste</a>&lt; <a class="el" href="classtp3_1_1_arbre_genealogique.html">ArbreGenealogique</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_annuaire.html#a618422968bde692be20d28c91c4275ab">m_listeArbreGene</a></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Amis</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_annuaire.html#a2bad871858c7a18b3e889bf545216b81">operator&lt;&lt;</a> (std::ostream &amp;p_out, const <a class="el" href="classtp3_1_1_annuaire.html">Annuaire</a> &amp;p_annuaire)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">operateur de sortie du contenu de l'annuaire formatage des infos dans un string puis sortie  <a href="#a2bad871858c7a18b3e889bf545216b81"></a><br/></td></tr>
</table>
<hr/><h2>Documentation des constructeurs et destructeur</h2>
<a class="anchor" id="aeb92ecec40ffca21b6933b384386d119"></a><!-- doxytag: member="tp3::Annuaire::Annuaire" ref="aeb92ecec40ffca21b6933b384386d119" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">tp3::Annuaire::Annuaire </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab8c17cbbc1ac312cb7a294e2810402ea"></a><!-- doxytag: member="tp3::Annuaire::Annuaire" ref="ab8c17cbbc1ac312cb7a294e2810402ea" args="(std::ifstream &amp;p_fichierEntree)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">tp3::Annuaire::Annuaire </td>
          <td>(</td>
          <td class="paramtype">std::ifstream &amp;&#160;</td>
          <td class="paramname"><em>p_fichierEntree</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructeur à partir d'un fichier en entrée. </p>
<dl><dt><b>Paramètres:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p_fichierEntree</td><td>un flux d'entrée vers un fichier contenant la liste des personnes à charger. </td></tr>
  </table>
  </dd>
</dl>
<dl class="pre"><dt><b>Précondition:</b></dt><dd>Il y a assez de mémoire pour charger toutes les personnes de la liste. </dd>
<dd>
Le fichier <em>p_fichierEntree</em> est ouvert corectement. </dd></dl>
<dl class="post"><dt><b>Postcondition:</b></dt><dd>Le fichier <em>p_fichierEntree</em> n'est pas fermé par la fonction. </dd>
<dd>
Si les préconditions sont respectées, les données de l'annuaire contenu dans le fichier en entrée sont organisées dans une structure de données. </dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">bad_alloc</td><td>si pas assez de mémoire contenir toute la liste du fichier. </td></tr>
    <tr><td class="paramname">logic_error</td><td>si le fichier <em>p_fichierEntree</em> n'est pas ouvert correctement. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a396bb269100505301c66ea5c29740d46"></a><!-- doxytag: member="tp3::Annuaire::~Annuaire" ref="a396bb269100505301c66ea5c29740d46" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">tp3::Annuaire::~Annuaire </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Documentation des fonctions membres</h2>
<a class="anchor" id="af2e2e1eddc5bd80a48bfcab51b0b55d3"></a><!-- doxytag: member="tp3::Annuaire::ajouterEnfant" ref="af2e2e1eddc5bd80a48bfcab51b0b55d3" args="(const Personne &amp;p_parent, const Personne &amp;p_enfant)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tp3::Annuaire::ajouterEnfant </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;&#160;</td>
          <td class="paramname"><em>p_parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;&#160;</td>
          <td class="paramname"><em>p_enfant</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>ajoute un enfant à un parent dans un arbre généalogique. </p>
<p>Si Parent == Enfant il s'agit d'un ancètre, un nouvel arbre est ajouté dans la liste des arbres généalogiques </p>
<dl><dt><b>Paramètres:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p_parent</td><td>le parent dans l'arbre généalogique. </td></tr>
  </table>
  </dd>
</dl>
<dl class="pre"><dt><b>Précondition:</b></dt><dd>Precondition p_parent existe dans le bottin </dd></dl>
<dl><dt><b>Paramètres:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p_enfant</td><td>l'enfant à ajouter au parent dans l'arbre généalogique. </td></tr>
  </table>
  </dd>
</dl>
<dl class="pre"><dt><b>Précondition:</b></dt><dd>Precondition p_enfant existe dans le bottin </dd></dl>
<dl class="post"><dt><b>Postcondition:</b></dt><dd>Postcondition (peut en avoir plusieurs)</dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">logic_error</td><td>le parent n'existe pas dans le bottin. </td></tr>
    <tr><td class="paramname">logic_error</td><td>l'enfant n'existe pas dans le bottin. </td></tr>
  </table>
  </dd>
</dl>

<p><div class="dynheader">
Voici le graphe d'appel pour cette fonction :</div>
<div class="dyncontent">
<div class="center"><img src="classtp3_1_1_annuaire_af2e2e1eddc5bd80a48bfcab51b0b55d3_cgraph.png" border="0" usemap="#classtp3_1_1_annuaire_af2e2e1eddc5bd80a48bfcab51b0b55d3_cgraph" alt=""/></div>
<map name="classtp3_1_1_annuaire_af2e2e1eddc5bd80a48bfcab51b0b55d3_cgraph" id="classtp3_1_1_annuaire_af2e2e1eddc5bd80a48bfcab51b0b55d3_cgraph">
<area shape="rect" id="node3" href="classtp3_1_1_arbre_genealogique.html#ac3832250b86335974648152afe01b407" title="Ajouter un individu dans un arbre genealogique si le *parent est NULL creer un parent avec l&#39;*enfant ..." alt="" coords="243,5,490,32"/><area shape="rect" id="node5" href="classtp3_1_1_arbre_genealogique.html#a1e2f55fafcdd4f3e4b033e45d1973c0d" title="trouve l&#39;adresse du noeud où se trouve la personne par parcours récursif pré&#45;ordre de _trouvePersonne..." alt="" coords="539,5,797,32"/><area shape="rect" id="node7" href="classtp3_1_1_arbre_genealogique.html#ad70bbfa3ba188296396f0a8cbdd3f2db" title="tp3::ArbreGenealogique::_trouvePersonne" alt="" coords="846,5,1111,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="acfbfa0240b09dfcb8f6e3e3a7e9d1d7a"></a><!-- doxytag: member="tp3::Annuaire::inscrire" ref="acfbfa0240b09dfcb8f6e3e3a7e9d1d7a" args="(const Personne &amp;p_personne, const Adresse &amp;p_adresse)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tp3::Annuaire::inscrire </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;&#160;</td>
          <td class="paramname"><em>p_personne</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classtp3_1_1_adresse.html">Adresse</a> &amp;&#160;</td>
          <td class="paramname"><em>p_adresse</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>pour inscrire une personne dans l'annuaire </p>
<dl><dt><b>Paramètres:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p_personne</td><td>la personne à ajouter. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">p_adresse</td><td>de la personne à inscrire </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Documentation des fonctions amies et associées</h2>
<a class="anchor" id="a2bad871858c7a18b3e889bf545216b81"></a><!-- doxytag: member="tp3::Annuaire::operator&lt;&lt;" ref="a2bad871858c7a18b3e889bf545216b81" args="(std::ostream &amp;p_out, const Annuaire &amp;p_annuaire)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream &amp; tp3::Annuaire::operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>p_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classtp3_1_1_annuaire.html">Annuaire</a> &amp;&#160;</td>
          <td class="paramname"><em>p_annuaire</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>operateur de sortie du contenu de l'annuaire formatage des infos dans un string puis sortie </p>
<dl><dt><b>Paramètres:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p_annuaire</td><td>l'annuaire a sortir. </td></tr>
  </table>
  </dd>
</dl>
<dl class="pre"><dt><b>Précondition:</b></dt><dd>l'annuaire n'est pas vide</dd></dl>
<dl><dt><b>Paramètres:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">p_out</td><td>le flux de sortie contenant l'annuaire .</td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">exception_name</td><td>Description des raisons de l'exception (peut en avoir plusieurs ou aucune). </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Renvoie:</b></dt><dd>un flux de sortie pour les appel en cascade. </dd></dl>

</div>
</div>
<hr/><h2>Documentation des données membres</h2>
<a class="anchor" id="a30d1f7375cc83f712cab39d2833e20e0"></a><!-- doxytag: member="tp3::Annuaire::m_bottin" ref="a30d1f7375cc83f712cab39d2833e20e0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classtp3_1_1_arbre_a_v_l.html">ArbreAVL</a>&lt;<a class="el" href="classtp3_1_1_personne.html">Personne</a>, <a class="el" href="classtp3_1_1_adresse.html">Adresse</a>&gt; <a class="el" href="classtp3_1_1_annuaire.html#a30d1f7375cc83f712cab39d2833e20e0">tp3::Annuaire::m_bottin</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a618422968bde692be20d28c91c4275ab"></a><!-- doxytag: member="tp3::Annuaire::m_listeArbreGene" ref="a618422968bde692be20d28c91c4275ab" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classlab3_1_1_liste.html">lab3::Liste</a>&lt;<a class="el" href="classtp3_1_1_arbre_genealogique.html">ArbreGenealogique</a>&gt; <a class="el" href="classtp3_1_1_annuaire.html#a618422968bde692be20d28c91c4275ab">tp3::Annuaire::m_listeArbreGene</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/>La documentation de cette classe a été générée à partir des fichiers suivants :<ul>
<li><a class="el" href="_annuaire_8h.html">Annuaire.h</a></li>
<li><a class="el" href="_annuaire_8cpp.html">Annuaire.cpp</a></li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacetp3.html">tp3</a>      </li>
      <li class="navelem"><a class="el" href="classtp3_1_1_annuaire.html">Annuaire</a>      </li>
      <li class="footer">Généré le Sat Nov 30 2013 12:55:22 pour Annuaire genealogique associatif par&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
    </ul>
  </div>

</body>
</html>
